/*
 * file:       TaskField.java
 * author:     Jon Iles
 * copyright:  (c) Packwood Software 2005
 * date:       16/04/2005
 */

/*
 * This library is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published by the
 * Free Software Foundation; either version 2.1 of the License, or (at your
 * option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
 * License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library; if not, write to the Free Software Foundation, Inc.,
 * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
 */

package net.sf.mpxj;

import java.util.EnumSet;
import java.util.Locale;

/**
 * Instances of this type represent Task fields.
 */
public enum TaskField implements FieldType
{
   START(DataType.DATE), // Must always be first value

   DURATION_UNITS(DataType.TIME_UNITS),
   BASELINE_DURATION_UNITS(DataType.TIME_UNITS),
   ACTUAL_DURATION_UNITS(DataType.TIME_UNITS),
   LEVELING_DELAY_UNITS(DataType.TIME_UNITS),
   DURATION1_UNITS(DataType.TIME_UNITS),
   DURATION2_UNITS(DataType.TIME_UNITS),
   DURATION3_UNITS(DataType.TIME_UNITS),
   DURATION4_UNITS(DataType.TIME_UNITS),
   DURATION5_UNITS(DataType.TIME_UNITS),
   DURATION6_UNITS(DataType.TIME_UNITS),
   DURATION7_UNITS(DataType.TIME_UNITS),
   DURATION8_UNITS(DataType.TIME_UNITS),
   DURATION9_UNITS(DataType.TIME_UNITS),
   DURATION10_UNITS(DataType.TIME_UNITS),

   WORK(DataType.WORK),
   BASELINE_WORK(DataType.WORK),
   ACTUAL_WORK(DataType.WORK),
   WORK_VARIANCE(DataType.DURATION),
   REMAINING_WORK(DataType.WORK),
   COST(DataType.CURRENCY),
   BASELINE_COST(DataType.CURRENCY),
   ACTUAL_COST(DataType.CURRENCY),
   FIXED_COST(DataType.CURRENCY),
   COST_VARIANCE(DataType.CURRENCY),
   REMAINING_COST(DataType.CURRENCY),
   BCWP(DataType.CURRENCY),
   BCWS(DataType.CURRENCY),
   SV(DataType.CURRENCY),
   NAME(DataType.STRING),
   WBS(DataType.STRING),
   CONSTRAINT_TYPE(DataType.CONSTRAINT),
   CONSTRAINT_DATE(DataType.DATE),
   SECONDARY_CONSTRAINT_TYPE(DataType.CONSTRAINT),
   SECONDARY_CONSTRAINT_DATE(DataType.DATE),
   CRITICAL(DataType.BOOLEAN),
   LEVELING_DELAY(DataType.DURATION, TaskField.LEVELING_DELAY_UNITS),
   FREE_SLACK(DataType.DURATION, TaskField.ACTUAL_DURATION_UNITS),
   TOTAL_SLACK(DataType.DURATION),
   ID(DataType.INTEGER),
   MILESTONE(DataType.BOOLEAN),
   PRIORITY(DataType.PRIORITY),
   SUBPROJECT_FILE(DataType.STRING),
   BASELINE_DURATION(DataType.DURATION, TaskField.BASELINE_DURATION_UNITS),
   ACTUAL_DURATION(DataType.DURATION, TaskField.ACTUAL_DURATION_UNITS),
   DURATION(DataType.DURATION, TaskField.ACTUAL_DURATION_UNITS),
   DURATION_VARIANCE(DataType.DURATION),
   REMAINING_DURATION(DataType.DURATION, TaskField.ACTUAL_DURATION_UNITS),
   PERCENT_COMPLETE(DataType.PERCENTAGE),
   PERCENT_WORK_COMPLETE(DataType.PERCENTAGE),
   EARLY_START(DataType.DATE),
   EARLY_FINISH(DataType.DATE),
   REMAINING_EARLY_START(DataType.DATE),
   REMAINING_EARLY_FINISH(DataType.DATE),
   LATE_START(DataType.DATE),
   LATE_FINISH(DataType.DATE),
   ACTUAL_START(DataType.DATE),
   ACTUAL_FINISH(DataType.DATE),
   BASELINE_START(DataType.DATE),
   BASELINE_FINISH(DataType.DATE),
   START_VARIANCE(DataType.DURATION),
   FINISH_VARIANCE(DataType.DURATION),
   PREDECESSORS(DataType.RELATION_LIST),
   SUCCESSORS(DataType.RELATION_LIST),
   RESOURCE_NAMES(DataType.STRING),
   RESOURCE_INITIALS(DataType.STRING),
   TEXT1(DataType.STRING),
   START1(DataType.DATE),
   FINISH1(DataType.DATE),
   TEXT2(DataType.STRING),
   START2(DataType.DATE),
   FINISH2(DataType.DATE),
   TEXT3(DataType.STRING),
   START3(DataType.DATE),
   FINISH3(DataType.DATE),
   TEXT4(DataType.STRING),
   START4(DataType.DATE),
   FINISH4(DataType.DATE),
   TEXT5(DataType.STRING),
   START5(DataType.DATE),
   FINISH5(DataType.DATE),
   TEXT6(DataType.STRING),
   TEXT7(DataType.STRING),
   TEXT8(DataType.STRING),
   TEXT9(DataType.STRING),
   TEXT10(DataType.STRING),
   MARKED(DataType.BOOLEAN),
   FLAG1(DataType.BOOLEAN),
   FLAG2(DataType.BOOLEAN),
   FLAG3(DataType.BOOLEAN),
   FLAG4(DataType.BOOLEAN),
   FLAG5(DataType.BOOLEAN),
   FLAG6(DataType.BOOLEAN),
   FLAG7(DataType.BOOLEAN),
   FLAG8(DataType.BOOLEAN),
   FLAG9(DataType.BOOLEAN),
   FLAG10(DataType.BOOLEAN),
   ROLLUP(DataType.BOOLEAN),
   CV(DataType.NUMERIC),
   PROJECT(DataType.STRING),
   OUTLINE_LEVEL(DataType.SHORT),
   UNIQUE_ID(DataType.INTEGER),
   NUMBER1(DataType.NUMERIC),
   NUMBER2(DataType.NUMERIC),
   NUMBER3(DataType.NUMERIC),
   NUMBER4(DataType.NUMERIC),
   NUMBER5(DataType.NUMERIC),
   SUMMARY(DataType.BOOLEAN),
   CREATED(DataType.DATE),
   NOTES(DataType.ASCII_STRING),
   UNIQUE_ID_PREDECESSORS(DataType.STRING),
   UNIQUE_ID_SUCCESSORS(DataType.STRING),
   OBJECTS(DataType.NUMERIC),
   LINKED_FIELDS(DataType.BOOLEAN),
   RESUME(DataType.DATE),
   STOP(DataType.DATE),
   OUTLINE_NUMBER(DataType.STRING),
   DURATION1(DataType.DURATION, TaskField.DURATION1_UNITS),
   DURATION2(DataType.DURATION, TaskField.DURATION2_UNITS),
   DURATION3(DataType.DURATION, TaskField.DURATION3_UNITS),
   COST1(DataType.CURRENCY),
   COST2(DataType.CURRENCY),
   COST3(DataType.CURRENCY),
   HIDE_BAR(DataType.BOOLEAN),
   CONFIRMED(DataType.BOOLEAN),
   UPDATE_NEEDED(DataType.BOOLEAN),
   CONTACT(DataType.STRING),
   RESOURCE_GROUP(DataType.STRING),
   ACWP(DataType.NUMERIC),
   TYPE(DataType.TASK_TYPE),
   RECURRING(DataType.BOOLEAN),
   EFFORT_DRIVEN(DataType.BOOLEAN),
   OVERTIME_WORK(DataType.DURATION),
   ACTUAL_OVERTIME_WORK(DataType.WORK),
   REMAINING_OVERTIME_WORK(DataType.WORK),
   REGULAR_WORK(DataType.DURATION),
   OVERTIME_COST(DataType.CURRENCY),
   ACTUAL_OVERTIME_COST(DataType.CURRENCY),
   REMAINING_OVERTIME_COST(DataType.CURRENCY),
   FIXED_COST_ACCRUAL(DataType.ACCRUE),
   INDICATORS(DataType.STRING),
   HYPERLINK(DataType.STRING),
   HYPERLINK_ADDRESS(DataType.STRING),
   HYPERLINK_SUBADDRESS(DataType.STRING),
   HYPERLINK_HREF(DataType.STRING),
   ASSIGNMENT(DataType.STRING),
   OVERALLOCATED(DataType.BOOLEAN),
   EXTERNAL_TASK(DataType.BOOLEAN),
   SUBPROJECT_READ_ONLY(DataType.BOOLEAN),
   RESPONSE_PENDING(DataType.BOOLEAN),
   TEAMSTATUS_PENDING(DataType.BOOLEAN),
   LEVELING_CAN_SPLIT(DataType.BOOLEAN),
   LEVEL_ASSIGNMENTS(DataType.BOOLEAN),
   WORK_CONTOUR(DataType.STRING),
   COST4(DataType.CURRENCY),
   COST5(DataType.CURRENCY),
   COST6(DataType.CURRENCY),
   COST7(DataType.CURRENCY),
   COST8(DataType.CURRENCY),
   COST9(DataType.CURRENCY),
   COST10(DataType.CURRENCY),
   DATE1(DataType.DATE),
   DATE2(DataType.DATE),
   DATE3(DataType.DATE),
   DATE4(DataType.DATE),
   DATE5(DataType.DATE),
   DATE6(DataType.DATE),
   DATE7(DataType.DATE),
   DATE8(DataType.DATE),
   DATE9(DataType.DATE),
   DATE10(DataType.DATE),
   DURATION4(DataType.DURATION, TaskField.DURATION4_UNITS),
   DURATION5(DataType.DURATION, TaskField.DURATION5_UNITS),
   DURATION6(DataType.DURATION, TaskField.DURATION6_UNITS),
   DURATION7(DataType.DURATION, TaskField.DURATION7_UNITS),
   DURATION8(DataType.DURATION, TaskField.DURATION8_UNITS),
   DURATION9(DataType.DURATION, TaskField.DURATION9_UNITS),
   DURATION10(DataType.DURATION, TaskField.DURATION10_UNITS),
   START6(DataType.DATE),
   FINISH6(DataType.DATE),
   START7(DataType.DATE),
   FINISH7(DataType.DATE),
   START8(DataType.DATE),
   FINISH8(DataType.DATE),
   START9(DataType.DATE),
   FINISH9(DataType.DATE),
   START10(DataType.DATE),
   FINISH10(DataType.DATE),
   FLAG11(DataType.BOOLEAN),
   FLAG12(DataType.BOOLEAN),
   FLAG13(DataType.BOOLEAN),
   FLAG14(DataType.BOOLEAN),
   FLAG15(DataType.BOOLEAN),
   FLAG16(DataType.BOOLEAN),
   FLAG17(DataType.BOOLEAN),
   FLAG18(DataType.BOOLEAN),
   FLAG19(DataType.BOOLEAN),
   FLAG20(DataType.BOOLEAN),
   NUMBER6(DataType.NUMERIC),
   NUMBER7(DataType.NUMERIC),
   NUMBER8(DataType.NUMERIC),
   NUMBER9(DataType.NUMERIC),
   NUMBER10(DataType.NUMERIC),
   NUMBER11(DataType.NUMERIC),
   NUMBER12(DataType.NUMERIC),
   NUMBER13(DataType.NUMERIC),
   NUMBER14(DataType.NUMERIC),
   NUMBER15(DataType.NUMERIC),
   NUMBER16(DataType.NUMERIC),
   NUMBER17(DataType.NUMERIC),
   NUMBER18(DataType.NUMERIC),
   NUMBER19(DataType.NUMERIC),
   NUMBER20(DataType.NUMERIC),
   TEXT11(DataType.STRING),
   TEXT12(DataType.STRING),
   TEXT13(DataType.STRING),
   TEXT14(DataType.STRING),
   TEXT15(DataType.STRING),
   TEXT16(DataType.STRING),
   TEXT17(DataType.STRING),
   TEXT18(DataType.STRING),
   TEXT19(DataType.STRING),
   TEXT20(DataType.STRING),
   TEXT21(DataType.STRING),
   TEXT22(DataType.STRING),
   TEXT23(DataType.STRING),
   TEXT24(DataType.STRING),
   TEXT25(DataType.STRING),
   TEXT26(DataType.STRING),
   TEXT27(DataType.STRING),
   TEXT28(DataType.STRING),
   TEXT29(DataType.STRING),
   TEXT30(DataType.STRING),
   RESOURCE_PHONETICS(DataType.STRING),
   ASSIGNMENT_DELAY(DataType.STRING),
   ASSIGNMENT_UNITS(DataType.STRING),
   COST_RATE_TABLE(DataType.STRING),
   PRELEVELED_START(DataType.DATE),
   PRELEVELED_FINISH(DataType.DATE),
   ESTIMATED(DataType.BOOLEAN),
   IGNORE_RESOURCE_CALENDAR(DataType.BOOLEAN),
   CALENDAR(DataType.BINARY),
   OUTLINE_CODE1(DataType.STRING),
   OUTLINE_CODE2(DataType.STRING),
   OUTLINE_CODE3(DataType.STRING),
   OUTLINE_CODE4(DataType.STRING),
   OUTLINE_CODE5(DataType.STRING),
   OUTLINE_CODE6(DataType.STRING),
   OUTLINE_CODE7(DataType.STRING),
   OUTLINE_CODE8(DataType.STRING),
   OUTLINE_CODE9(DataType.STRING),
   OUTLINE_CODE10(DataType.STRING),
   DEADLINE(DataType.DATE),
   START_SLACK(DataType.DURATION, TaskField.ACTUAL_DURATION_UNITS),
   FINISH_SLACK(DataType.DURATION, TaskField.ACTUAL_DURATION_UNITS),
   VAC(DataType.NUMERIC),
   GROUP_BY_SUMMARY(DataType.STRING),
   WBS_PREDECESSORS(DataType.RELATION_LIST),
   WBS_SUCCESSORS(DataType.RELATION_LIST),
   RESOURCE_TYPE(DataType.STRING),
   BASELINE1_DURATION_UNITS(DataType.TIME_UNITS),
   BASELINE2_DURATION_UNITS(DataType.TIME_UNITS),
   BASELINE3_DURATION_UNITS(DataType.TIME_UNITS),
   BASELINE4_DURATION_UNITS(DataType.TIME_UNITS),
   BASELINE5_DURATION_UNITS(DataType.TIME_UNITS),
   BASELINE6_DURATION_UNITS(DataType.TIME_UNITS),
   BASELINE7_DURATION_UNITS(DataType.TIME_UNITS),
   BASELINE8_DURATION_UNITS(DataType.TIME_UNITS),
   BASELINE9_DURATION_UNITS(DataType.TIME_UNITS),
   BASELINE10_DURATION_UNITS(DataType.TIME_UNITS),
   BASELINE1_START(DataType.DATE),
   BASELINE1_FINISH(DataType.DATE),
   BASELINE1_COST(DataType.CURRENCY),
   BASELINE1_WORK(DataType.WORK),
   BASELINE1_DURATION(DataType.DURATION, BASELINE1_DURATION_UNITS),
   BASELINE2_START(DataType.DATE),
   BASELINE2_FINISH(DataType.DATE),
   BASELINE2_COST(DataType.CURRENCY),
   BASELINE2_WORK(DataType.WORK),
   BASELINE2_DURATION(DataType.DURATION, BASELINE2_DURATION_UNITS),
   BASELINE3_START(DataType.DATE),
   BASELINE3_FINISH(DataType.DATE),
   BASELINE3_COST(DataType.CURRENCY),
   BASELINE3_WORK(DataType.WORK),
   BASELINE3_DURATION(DataType.DURATION, BASELINE3_DURATION_UNITS),
   BASELINE4_START(DataType.DATE),
   BASELINE4_FINISH(DataType.DATE),
   BASELINE4_COST(DataType.CURRENCY),
   BASELINE4_WORK(DataType.WORK),
   BASELINE4_DURATION(DataType.DURATION, BASELINE4_DURATION_UNITS),
   BASELINE5_START(DataType.DATE),
   BASELINE5_FINISH(DataType.DATE),
   BASELINE5_COST(DataType.CURRENCY),
   BASELINE5_WORK(DataType.WORK),
   BASELINE5_DURATION(DataType.DURATION, BASELINE5_DURATION_UNITS),
   BASELINE6_START(DataType.DATE),
   BASELINE6_FINISH(DataType.DATE),
   BASELINE6_COST(DataType.CURRENCY),
   BASELINE6_WORK(DataType.WORK),
   BASELINE6_DURATION(DataType.DURATION, BASELINE6_DURATION_UNITS),
   BASELINE7_START(DataType.DATE),
   BASELINE7_FINISH(DataType.DATE),
   BASELINE7_COST(DataType.CURRENCY),
   BASELINE7_WORK(DataType.WORK),
   BASELINE7_DURATION(DataType.DURATION, BASELINE7_DURATION_UNITS),
   BASELINE8_START(DataType.DATE),
   BASELINE8_FINISH(DataType.DATE),
   BASELINE8_COST(DataType.CURRENCY),
   BASELINE8_WORK(DataType.WORK),
   BASELINE8_DURATION(DataType.DURATION, BASELINE8_DURATION_UNITS),
   BASELINE9_START(DataType.DATE),
   BASELINE9_FINISH(DataType.DATE),
   BASELINE9_COST(DataType.CURRENCY),
   BASELINE9_WORK(DataType.WORK),
   BASELINE9_DURATION(DataType.DURATION, BASELINE9_DURATION_UNITS),
   BASELINE10_START(DataType.DATE),
   BASELINE10_FINISH(DataType.DATE),
   BASELINE10_COST(DataType.CURRENCY),
   BASELINE10_WORK(DataType.WORK),
   BASELINE10_DURATION(DataType.DURATION, BASELINE10_DURATION_UNITS),
   ENTERPRISE_COST1(DataType.CURRENCY),
   ENTERPRISE_COST2(DataType.CURRENCY),
   ENTERPRISE_COST3(DataType.CURRENCY),
   ENTERPRISE_COST4(DataType.CURRENCY),
   ENTERPRISE_COST5(DataType.CURRENCY),
   ENTERPRISE_COST6(DataType.CURRENCY),
   ENTERPRISE_COST7(DataType.CURRENCY),
   ENTERPRISE_COST8(DataType.CURRENCY),
   ENTERPRISE_COST9(DataType.CURRENCY),
   ENTERPRISE_COST10(DataType.CURRENCY),
   ENTERPRISE_DATE1(DataType.DATE),
   ENTERPRISE_DATE2(DataType.DATE),
   ENTERPRISE_DATE3(DataType.DATE),
   ENTERPRISE_DATE4(DataType.DATE),
   ENTERPRISE_DATE5(DataType.DATE),
   ENTERPRISE_DATE6(DataType.DATE),
   ENTERPRISE_DATE7(DataType.DATE),
   ENTERPRISE_DATE8(DataType.DATE),
   ENTERPRISE_DATE9(DataType.DATE),
   ENTERPRISE_DATE10(DataType.DATE),
   ENTERPRISE_DATE11(DataType.DATE),
   ENTERPRISE_DATE12(DataType.DATE),
   ENTERPRISE_DATE13(DataType.DATE),
   ENTERPRISE_DATE14(DataType.DATE),
   ENTERPRISE_DATE15(DataType.DATE),
   ENTERPRISE_DATE16(DataType.DATE),
   ENTERPRISE_DATE17(DataType.DATE),
   ENTERPRISE_DATE18(DataType.DATE),
   ENTERPRISE_DATE19(DataType.DATE),
   ENTERPRISE_DATE20(DataType.DATE),
   ENTERPRISE_DATE21(DataType.DATE),
   ENTERPRISE_DATE22(DataType.DATE),
   ENTERPRISE_DATE23(DataType.DATE),
   ENTERPRISE_DATE24(DataType.DATE),
   ENTERPRISE_DATE25(DataType.DATE),
   ENTERPRISE_DATE26(DataType.DATE),
   ENTERPRISE_DATE27(DataType.DATE),
   ENTERPRISE_DATE28(DataType.DATE),
   ENTERPRISE_DATE29(DataType.DATE),
   ENTERPRISE_DATE30(DataType.DATE),
   ENTERPRISE_DURATION1_UNITS(DataType.TIME_UNITS),
   ENTERPRISE_DURATION2_UNITS(DataType.TIME_UNITS),
   ENTERPRISE_DURATION3_UNITS(DataType.TIME_UNITS),
   ENTERPRISE_DURATION4_UNITS(DataType.TIME_UNITS),
   ENTERPRISE_DURATION5_UNITS(DataType.TIME_UNITS),
   ENTERPRISE_DURATION6_UNITS(DataType.TIME_UNITS),
   ENTERPRISE_DURATION7_UNITS(DataType.TIME_UNITS),
   ENTERPRISE_DURATION8_UNITS(DataType.TIME_UNITS),
   ENTERPRISE_DURATION9_UNITS(DataType.TIME_UNITS),
   ENTERPRISE_DURATION10_UNITS(DataType.TIME_UNITS),
   ENTERPRISE_DURATION1(DataType.DURATION, ENTERPRISE_DURATION1_UNITS),
   ENTERPRISE_DURATION2(DataType.DURATION, ENTERPRISE_DURATION2_UNITS),
   ENTERPRISE_DURATION3(DataType.DURATION, ENTERPRISE_DURATION3_UNITS),
   ENTERPRISE_DURATION4(DataType.DURATION, ENTERPRISE_DURATION4_UNITS),
   ENTERPRISE_DURATION5(DataType.DURATION, ENTERPRISE_DURATION5_UNITS),
   ENTERPRISE_DURATION6(DataType.DURATION, ENTERPRISE_DURATION6_UNITS),
   ENTERPRISE_DURATION7(DataType.DURATION, ENTERPRISE_DURATION7_UNITS),
   ENTERPRISE_DURATION8(DataType.DURATION, ENTERPRISE_DURATION8_UNITS),
   ENTERPRISE_DURATION9(DataType.DURATION, ENTERPRISE_DURATION9_UNITS),
   ENTERPRISE_DURATION10(DataType.DURATION, ENTERPRISE_DURATION10_UNITS),
   ENTERPRISE_FLAG1(DataType.BOOLEAN),
   ENTERPRISE_FLAG2(DataType.BOOLEAN),
   ENTERPRISE_FLAG3(DataType.BOOLEAN),
   ENTERPRISE_FLAG4(DataType.BOOLEAN),
   ENTERPRISE_FLAG5(DataType.BOOLEAN),
   ENTERPRISE_FLAG6(DataType.BOOLEAN),
   ENTERPRISE_FLAG7(DataType.BOOLEAN),
   ENTERPRISE_FLAG8(DataType.BOOLEAN),
   ENTERPRISE_FLAG9(DataType.BOOLEAN),
   ENTERPRISE_FLAG10(DataType.BOOLEAN),
   ENTERPRISE_FLAG11(DataType.BOOLEAN),
   ENTERPRISE_FLAG12(DataType.BOOLEAN),
   ENTERPRISE_FLAG13(DataType.BOOLEAN),
   ENTERPRISE_FLAG14(DataType.BOOLEAN),
   ENTERPRISE_FLAG15(DataType.BOOLEAN),
   ENTERPRISE_FLAG16(DataType.BOOLEAN),
   ENTERPRISE_FLAG17(DataType.BOOLEAN),
   ENTERPRISE_FLAG18(DataType.BOOLEAN),
   ENTERPRISE_FLAG19(DataType.BOOLEAN),
   ENTERPRISE_FLAG20(DataType.BOOLEAN),
   ENTERPRISE_NUMBER1(DataType.NUMERIC),
   ENTERPRISE_NUMBER2(DataType.NUMERIC),
   ENTERPRISE_NUMBER3(DataType.NUMERIC),
   ENTERPRISE_NUMBER4(DataType.NUMERIC),
   ENTERPRISE_NUMBER5(DataType.NUMERIC),
   ENTERPRISE_NUMBER6(DataType.NUMERIC),
   ENTERPRISE_NUMBER7(DataType.NUMERIC),
   ENTERPRISE_NUMBER8(DataType.NUMERIC),
   ENTERPRISE_NUMBER9(DataType.NUMERIC),
   ENTERPRISE_NUMBER10(DataType.NUMERIC),
   ENTERPRISE_NUMBER11(DataType.NUMERIC),
   ENTERPRISE_NUMBER12(DataType.NUMERIC),
   ENTERPRISE_NUMBER13(DataType.NUMERIC),
   ENTERPRISE_NUMBER14(DataType.NUMERIC),
   ENTERPRISE_NUMBER15(DataType.NUMERIC),
   ENTERPRISE_NUMBER16(DataType.NUMERIC),
   ENTERPRISE_NUMBER17(DataType.NUMERIC),
   ENTERPRISE_NUMBER18(DataType.NUMERIC),
   ENTERPRISE_NUMBER19(DataType.NUMERIC),
   ENTERPRISE_NUMBER20(DataType.NUMERIC),
   ENTERPRISE_NUMBER21(DataType.NUMERIC),
   ENTERPRISE_NUMBER22(DataType.NUMERIC),
   ENTERPRISE_NUMBER23(DataType.NUMERIC),
   ENTERPRISE_NUMBER24(DataType.NUMERIC),
   ENTERPRISE_NUMBER25(DataType.NUMERIC),
   ENTERPRISE_NUMBER26(DataType.NUMERIC),
   ENTERPRISE_NUMBER27(DataType.NUMERIC),
   ENTERPRISE_NUMBER28(DataType.NUMERIC),
   ENTERPRISE_NUMBER29(DataType.NUMERIC),
   ENTERPRISE_NUMBER30(DataType.NUMERIC),
   ENTERPRISE_NUMBER31(DataType.NUMERIC),
   ENTERPRISE_NUMBER32(DataType.NUMERIC),
   ENTERPRISE_NUMBER33(DataType.NUMERIC),
   ENTERPRISE_NUMBER34(DataType.NUMERIC),
   ENTERPRISE_NUMBER35(DataType.NUMERIC),
   ENTERPRISE_NUMBER36(DataType.NUMERIC),
   ENTERPRISE_NUMBER37(DataType.NUMERIC),
   ENTERPRISE_NUMBER38(DataType.NUMERIC),
   ENTERPRISE_NUMBER39(DataType.NUMERIC),
   ENTERPRISE_NUMBER40(DataType.NUMERIC),
   ENTERPRISE_TEXT1(DataType.STRING),
   ENTERPRISE_TEXT2(DataType.STRING),
   ENTERPRISE_TEXT3(DataType.STRING),
   ENTERPRISE_TEXT4(DataType.STRING),
   ENTERPRISE_TEXT5(DataType.STRING),
   ENTERPRISE_TEXT6(DataType.STRING),
   ENTERPRISE_TEXT7(DataType.STRING),
   ENTERPRISE_TEXT8(DataType.STRING),
   ENTERPRISE_TEXT9(DataType.STRING),
   ENTERPRISE_TEXT10(DataType.STRING),
   ENTERPRISE_TEXT11(DataType.STRING),
   ENTERPRISE_TEXT12(DataType.STRING),
   ENTERPRISE_TEXT13(DataType.STRING),
   ENTERPRISE_TEXT14(DataType.STRING),
   ENTERPRISE_TEXT15(DataType.STRING),
   ENTERPRISE_TEXT16(DataType.STRING),
   ENTERPRISE_TEXT17(DataType.STRING),
   ENTERPRISE_TEXT18(DataType.STRING),
   ENTERPRISE_TEXT19(DataType.STRING),
   ENTERPRISE_TEXT20(DataType.STRING),
   ENTERPRISE_TEXT21(DataType.STRING),
   ENTERPRISE_TEXT22(DataType.STRING),
   ENTERPRISE_TEXT23(DataType.STRING),
   ENTERPRISE_TEXT24(DataType.STRING),
   ENTERPRISE_TEXT25(DataType.STRING),
   ENTERPRISE_TEXT26(DataType.STRING),
   ENTERPRISE_TEXT27(DataType.STRING),
   ENTERPRISE_TEXT28(DataType.STRING),
   ENTERPRISE_TEXT29(DataType.STRING),
   ENTERPRISE_TEXT30(DataType.STRING),
   ENTERPRISE_TEXT31(DataType.STRING),
   ENTERPRISE_TEXT32(DataType.STRING),
   ENTERPRISE_TEXT33(DataType.STRING),
   ENTERPRISE_TEXT34(DataType.STRING),
   ENTERPRISE_TEXT35(DataType.STRING),
   ENTERPRISE_TEXT36(DataType.STRING),
   ENTERPRISE_TEXT37(DataType.STRING),
   ENTERPRISE_TEXT38(DataType.STRING),
   ENTERPRISE_TEXT39(DataType.STRING),
   ENTERPRISE_TEXT40(DataType.STRING),
   COMPLETE_THROUGH(DataType.DATE),
   SUMMARY_PROGRESS(DataType.DATE),
   GUID(DataType.GUID),

   ACTIVE(DataType.BOOLEAN),
   TASK_MODE(DataType.BOOLEAN),

   ASSIGNMENT_OWNER(DataType.STRING),
   BASELINE_BUDGET_COST(DataType.CURRENCY),
   BASELINE_BUDGET_WORK(DataType.WORK),
   BASELINE_DELIVERABLE_FINISH(DataType.DATE),
   BASELINE_DELIVERABLE_START(DataType.DATE),
   BASELINE_ESTIMATED_DURATION(DataType.DURATION, BASELINE_DURATION_UNITS),
   BASELINE_ESTIMATED_START(DataType.DATE),
   BASELINE_ESTIMATED_FINISH(DataType.DATE),
   BASELINE_FIXED_COST(DataType.CURRENCY),
   BASELINE_FIXED_COST_ACCRUAL(DataType.ACCRUE),

   BASELINE1_ESTIMATED_START(DataType.DATE),
   BASELINE1_ESTIMATED_FINISH(DataType.DATE),
   BASELINE1_ESTIMATED_DURATION(DataType.DURATION, BASELINE1_DURATION_UNITS),
   BASELINE1_FIXED_COST(DataType.CURRENCY),
   BASELINE1_FIXED_COST_ACCRUAL(DataType.ACCRUE),
   BASELINE1_BUDGET_COST(DataType.CURRENCY),
   BASELINE1_BUDGET_WORK(DataType.CURRENCY),
   BASELINE1_DELIVERABLE_FINISH(DataType.DATE),
   BASELINE1_DELIVERABLE_START(DataType.DATE),

   BASELINE2_ESTIMATED_START(DataType.DATE),
   BASELINE2_ESTIMATED_FINISH(DataType.DATE),
   BASELINE2_ESTIMATED_DURATION(DataType.DURATION, BASELINE2_DURATION_UNITS),
   BASELINE2_FIXED_COST(DataType.CURRENCY),
   BASELINE2_FIXED_COST_ACCRUAL(DataType.ACCRUE),
   BASELINE2_BUDGET_COST(DataType.CURRENCY),
   BASELINE2_BUDGET_WORK(DataType.CURRENCY),
   BASELINE2_DELIVERABLE_FINISH(DataType.DATE),
   BASELINE2_DELIVERABLE_START(DataType.DATE),

   BASELINE3_ESTIMATED_START(DataType.DATE),
   BASELINE3_ESTIMATED_FINISH(DataType.DATE),
   BASELINE3_ESTIMATED_DURATION(DataType.DURATION, BASELINE3_DURATION_UNITS),
   BASELINE3_FIXED_COST(DataType.CURRENCY),
   BASELINE3_FIXED_COST_ACCRUAL(DataType.ACCRUE),
   BASELINE3_BUDGET_COST(DataType.CURRENCY),
   BASELINE3_BUDGET_WORK(DataType.CURRENCY),
   BASELINE3_DELIVERABLE_FINISH(DataType.DATE),
   BASELINE3_DELIVERABLE_START(DataType.DATE),

   BASELINE4_ESTIMATED_START(DataType.DATE),
   BASELINE4_ESTIMATED_FINISH(DataType.DATE),
   BASELINE4_ESTIMATED_DURATION(DataType.DURATION, BASELINE4_DURATION_UNITS),
   BASELINE4_FIXED_COST(DataType.CURRENCY),
   BASELINE4_FIXED_COST_ACCRUAL(DataType.ACCRUE),
   BASELINE4_BUDGET_COST(DataType.CURRENCY),
   BASELINE4_BUDGET_WORK(DataType.CURRENCY),
   BASELINE4_DELIVERABLE_FINISH(DataType.DATE),
   BASELINE4_DELIVERABLE_START(DataType.DATE),

   BASELINE5_ESTIMATED_START(DataType.DATE),
   BASELINE5_ESTIMATED_FINISH(DataType.DATE),
   BASELINE5_ESTIMATED_DURATION(DataType.DURATION, BASELINE5_DURATION_UNITS),
   BASELINE5_FIXED_COST(DataType.CURRENCY),
   BASELINE5_FIXED_COST_ACCRUAL(DataType.ACCRUE),
   BASELINE5_BUDGET_COST(DataType.CURRENCY),
   BASELINE5_BUDGET_WORK(DataType.CURRENCY),
   BASELINE5_DELIVERABLE_FINISH(DataType.DATE),
   BASELINE5_DELIVERABLE_START(DataType.DATE),

   BASELINE6_ESTIMATED_START(DataType.DATE),
   BASELINE6_ESTIMATED_FINISH(DataType.DATE),
   BASELINE6_ESTIMATED_DURATION(DataType.DURATION, BASELINE6_DURATION_UNITS),
   BASELINE6_FIXED_COST(DataType.CURRENCY),
   BASELINE6_FIXED_COST_ACCRUAL(DataType.ACCRUE),
   BASELINE6_BUDGET_COST(DataType.CURRENCY),
   BASELINE6_BUDGET_WORK(DataType.CURRENCY),
   BASELINE6_DELIVERABLE_FINISH(DataType.DATE),
   BASELINE6_DELIVERABLE_START(DataType.DATE),

   BASELINE7_ESTIMATED_START(DataType.DATE),
   BASELINE7_ESTIMATED_FINISH(DataType.DATE),
   BASELINE7_ESTIMATED_DURATION(DataType.DURATION, BASELINE7_DURATION_UNITS),
   BASELINE7_FIXED_COST(DataType.CURRENCY),
   BASELINE7_FIXED_COST_ACCRUAL(DataType.ACCRUE),
   BASELINE7_BUDGET_COST(DataType.CURRENCY),
   BASELINE7_BUDGET_WORK(DataType.CURRENCY),
   BASELINE7_DELIVERABLE_FINISH(DataType.DATE),
   BASELINE7_DELIVERABLE_START(DataType.DATE),

   BASELINE8_ESTIMATED_START(DataType.DATE),
   BASELINE8_ESTIMATED_FINISH(DataType.DATE),
   BASELINE8_ESTIMATED_DURATION(DataType.DURATION, BASELINE8_DURATION_UNITS),
   BASELINE8_FIXED_COST(DataType.CURRENCY),
   BASELINE8_FIXED_COST_ACCRUAL(DataType.ACCRUE),
   BASELINE8_BUDGET_COST(DataType.CURRENCY),
   BASELINE8_BUDGET_WORK(DataType.CURRENCY),
   BASELINE8_DELIVERABLE_FINISH(DataType.DATE),
   BASELINE8_DELIVERABLE_START(DataType.DATE),

   BASELINE9_ESTIMATED_START(DataType.DATE),
   BASELINE9_ESTIMATED_FINISH(DataType.DATE),
   BASELINE9_ESTIMATED_DURATION(DataType.DURATION, BASELINE9_DURATION_UNITS),
   BASELINE9_FIXED_COST(DataType.CURRENCY),
   BASELINE9_FIXED_COST_ACCRUAL(DataType.ACCRUE),
   BASELINE9_BUDGET_COST(DataType.CURRENCY),
   BASELINE9_BUDGET_WORK(DataType.CURRENCY),
   BASELINE9_DELIVERABLE_FINISH(DataType.DATE),
   BASELINE9_DELIVERABLE_START(DataType.DATE),

   BASELINE10_ESTIMATED_START(DataType.DATE),
   BASELINE10_ESTIMATED_FINISH(DataType.DATE),
   BASELINE10_ESTIMATED_DURATION(DataType.DURATION, BASELINE10_DURATION_UNITS),
   BASELINE10_FIXED_COST(DataType.CURRENCY),
   BASELINE10_FIXED_COST_ACCRUAL(DataType.ACCRUE),
   BASELINE10_BUDGET_COST(DataType.CURRENCY),
   BASELINE10_BUDGET_WORK(DataType.CURRENCY),
   BASELINE10_DELIVERABLE_FINISH(DataType.DATE),
   BASELINE10_DELIVERABLE_START(DataType.DATE),

   CPI(DataType.STRING), // Check data type
   CVPERCENT(DataType.PERCENTAGE),
   DELIVERABLE_FINISH(DataType.DATE),
   DELIVERABLE_GUID(DataType.GUID),
   DELIVERABLE_NAME(DataType.STRING),
   DELIVERABLE_START(DataType.DATE),
   DELIVERABLE_TYPE(DataType.STRING), // Check data type

   EAC(DataType.STRING), // Check data type
   EARNED_VALUE_METHOD(DataType.EARNED_VALUE_METHOD),
   ERROR_MESSAGE(DataType.STRING),

   IGNORE_WARNINGS(DataType.BOOLEAN),
   PEAK(DataType.STRING), // Check data type
   PHYSICAL_PERCENT_COMPLETE(DataType.SHORT),
   PLACEHOLDER(DataType.STRING), // Check data type
   PUBLISH(DataType.STRING), // Check data type
   REQUEST_DEMAND(DataType.STRING), // Check data type
   SCHEDULED_DURATION(DataType.DURATION, TaskField.ACTUAL_DURATION_UNITS),
   SCHEDULED_FINISH(DataType.DATE),
   SCHEDULED_START(DataType.DATE),
   SPI(DataType.STRING), // Check data type
   STATUS(DataType.STRING), // Check data type
   STATUS_INDICATOR(DataType.STRING), // Check data type
   STATUS_MANAGER(DataType.STRING), // Check data type
   SVPERCENT(DataType.PERCENTAGE),
   TASK_CALENDAR(DataType.STRING), // Check data type
   TASK_CALENDAR_GUID(DataType.GUID),
   TCPI(DataType.STRING), // Check data type
   WARNING(DataType.STRING), // Check data type
   UNAVAILABLE(DataType.STRING), // Dummy entry
   SPLITS(DataType.DATE_RANGE_LIST),
   SPLITS_COMPLETE(DataType.DATE),
   SUBPROJECT(DataType.SUBPROJECT),

   START_TEXT(DataType.STRING),
   FINISH_TEXT(DataType.STRING),
   DURATION_TEXT(DataType.STRING),
   MANUAL_DURATION_UNITS(DataType.TIME_UNITS),
   MANUAL_DURATION(DataType.DURATION, MANUAL_DURATION_UNITS),
   SUBPROJECT_TASKS_UNIQUEID_OFFSET(DataType.INTEGER),
   SUBPROJECT_UNIQUE_TASK_ID(DataType.INTEGER),
   SUBPROJECT_TASK_ID(DataType.INTEGER),
   HYPERLINK_DATA(DataType.BINARY),
   RECURRING_DATA(DataType.BINARY),
   OUTLINE_CODE1_INDEX(DataType.INTEGER),
   OUTLINE_CODE2_INDEX(DataType.INTEGER),
   OUTLINE_CODE3_INDEX(DataType.INTEGER),
   OUTLINE_CODE4_INDEX(DataType.INTEGER),
   OUTLINE_CODE5_INDEX(DataType.INTEGER),
   OUTLINE_CODE6_INDEX(DataType.INTEGER),
   OUTLINE_CODE7_INDEX(DataType.INTEGER),
   OUTLINE_CODE8_INDEX(DataType.INTEGER),
   OUTLINE_CODE9_INDEX(DataType.INTEGER),
   OUTLINE_CODE10_INDEX(DataType.INTEGER),
   ENTERPRISE_DATA(DataType.BINARY),
   PARENT_TASK_UNIQUE_ID(DataType.INTEGER),
   CALENDAR_UNIQUE_ID(DataType.INTEGER),

   FIXED_DURATION(DataType.BOOLEAN),
   RESUME_NO_EARLIER_THAN(DataType.DATE),
   PARENT_TASK(DataType.INTEGER),
   INDEX(DataType.INTEGER),
   DURATION1_ESTIMATED(DataType.BOOLEAN),
   DURATION2_ESTIMATED(DataType.BOOLEAN),
   DURATION3_ESTIMATED(DataType.BOOLEAN),
   DURATION4_ESTIMATED(DataType.BOOLEAN),
   DURATION5_ESTIMATED(DataType.BOOLEAN),
   DURATION6_ESTIMATED(DataType.BOOLEAN),
   DURATION7_ESTIMATED(DataType.BOOLEAN),
   DURATION8_ESTIMATED(DataType.BOOLEAN),
   DURATION9_ESTIMATED(DataType.BOOLEAN),
   DURATION10_ESTIMATED(DataType.BOOLEAN),
   BASELINE_DURATION_ESTIMATED(DataType.BOOLEAN),
   HYPERLINK_SCREEN_TIP(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE1(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE2(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE3(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE4(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE5(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE6(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE7(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE8(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE9(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE10(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE11(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE12(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE13(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE14(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE15(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE16(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE17(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE18(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE19(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE20(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE21(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE22(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE23(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE24(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE25(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE26(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE27(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE28(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE29(DataType.STRING),
   ENTERPRISE_OUTLINE_CODE30(DataType.STRING),
   BASELINE1_DURATION_ESTIMATED(DataType.BOOLEAN),
   BASELINE2_DURATION_ESTIMATED(DataType.BOOLEAN),
   BASELINE3_DURATION_ESTIMATED(DataType.BOOLEAN),
   BASELINE4_DURATION_ESTIMATED(DataType.BOOLEAN),
   BASELINE5_DURATION_ESTIMATED(DataType.BOOLEAN),
   BASELINE6_DURATION_ESTIMATED(DataType.BOOLEAN),
   BASELINE7_DURATION_ESTIMATED(DataType.BOOLEAN),
   BASELINE8_DURATION_ESTIMATED(DataType.BOOLEAN),
   BASELINE9_DURATION_ESTIMATED(DataType.BOOLEAN),
   BASELINE10_DURATION_ESTIMATED(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_COST1(DataType.CURRENCY),
   ENTERPRISE_PROJECT_COST2(DataType.CURRENCY),
   ENTERPRISE_PROJECT_COST3(DataType.CURRENCY),
   ENTERPRISE_PROJECT_COST4(DataType.CURRENCY),
   ENTERPRISE_PROJECT_COST5(DataType.CURRENCY),
   ENTERPRISE_PROJECT_COST6(DataType.CURRENCY),
   ENTERPRISE_PROJECT_COST7(DataType.CURRENCY),
   ENTERPRISE_PROJECT_COST8(DataType.CURRENCY),
   ENTERPRISE_PROJECT_COST9(DataType.CURRENCY),
   ENTERPRISE_PROJECT_COST10(DataType.CURRENCY),
   ENTERPRISE_PROJECT_DATE1(DataType.DATE),
   ENTERPRISE_PROJECT_DATE2(DataType.DATE),
   ENTERPRISE_PROJECT_DATE3(DataType.DATE),
   ENTERPRISE_PROJECT_DATE4(DataType.DATE),
   ENTERPRISE_PROJECT_DATE5(DataType.DATE),
   ENTERPRISE_PROJECT_DATE6(DataType.DATE),
   ENTERPRISE_PROJECT_DATE7(DataType.DATE),
   ENTERPRISE_PROJECT_DATE8(DataType.DATE),
   ENTERPRISE_PROJECT_DATE9(DataType.DATE),
   ENTERPRISE_PROJECT_DATE10(DataType.DATE),
   ENTERPRISE_PROJECT_DATE11(DataType.DATE),
   ENTERPRISE_PROJECT_DATE12(DataType.DATE),
   ENTERPRISE_PROJECT_DATE13(DataType.DATE),
   ENTERPRISE_PROJECT_DATE14(DataType.DATE),
   ENTERPRISE_PROJECT_DATE15(DataType.DATE),
   ENTERPRISE_PROJECT_DATE16(DataType.DATE),
   ENTERPRISE_PROJECT_DATE17(DataType.DATE),
   ENTERPRISE_PROJECT_DATE18(DataType.DATE),
   ENTERPRISE_PROJECT_DATE19(DataType.DATE),
   ENTERPRISE_PROJECT_DATE20(DataType.DATE),
   ENTERPRISE_PROJECT_DATE21(DataType.DATE),
   ENTERPRISE_PROJECT_DATE22(DataType.DATE),
   ENTERPRISE_PROJECT_DATE23(DataType.DATE),
   ENTERPRISE_PROJECT_DATE24(DataType.DATE),
   ENTERPRISE_PROJECT_DATE25(DataType.DATE),
   ENTERPRISE_PROJECT_DATE26(DataType.DATE),
   ENTERPRISE_PROJECT_DATE27(DataType.DATE),
   ENTERPRISE_PROJECT_DATE28(DataType.DATE),
   ENTERPRISE_PROJECT_DATE29(DataType.DATE),
   ENTERPRISE_PROJECT_DATE30(DataType.DATE),
   ENTERPRISE_PROJECT_DURATION1(DataType.DURATION),
   ENTERPRISE_PROJECT_DURATION2(DataType.DURATION),
   ENTERPRISE_PROJECT_DURATION3(DataType.DURATION),
   ENTERPRISE_PROJECT_DURATION4(DataType.DURATION),
   ENTERPRISE_PROJECT_DURATION5(DataType.DURATION),
   ENTERPRISE_PROJECT_DURATION6(DataType.DURATION),
   ENTERPRISE_PROJECT_DURATION7(DataType.DURATION),
   ENTERPRISE_PROJECT_DURATION8(DataType.DURATION),
   ENTERPRISE_PROJECT_DURATION9(DataType.DURATION),
   ENTERPRISE_PROJECT_DURATION10(DataType.DURATION),
   ENTERPRISE_PROJECT_OUTLINE_CODE1(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE2(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE3(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE4(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE5(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE6(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE7(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE8(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE9(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE10(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE11(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE12(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE13(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE14(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE15(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE16(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE17(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE18(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE19(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE20(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE21(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE22(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE23(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE24(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE25(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE26(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE27(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE28(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE29(DataType.STRING),
   ENTERPRISE_PROJECT_OUTLINE_CODE30(DataType.STRING),
   ENTERPRISE_PROJECT_FLAG1(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG2(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG3(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG4(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG5(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG6(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG7(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG8(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG9(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG10(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG11(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG12(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG13(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG14(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG15(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG16(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG17(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG18(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG19(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_FLAG20(DataType.BOOLEAN),
   ENTERPRISE_PROJECT_NUMBER1(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER2(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER3(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER4(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER5(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER6(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER7(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER8(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER9(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER10(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER11(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER12(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER13(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER14(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER15(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER16(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER17(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER18(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER19(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER20(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER21(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER22(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER23(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER24(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER25(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER26(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER27(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER28(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER29(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER30(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER31(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER32(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER33(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER34(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER35(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER36(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER37(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER38(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER39(DataType.NUMERIC),
   ENTERPRISE_PROJECT_NUMBER40(DataType.NUMERIC),
   ENTERPRISE_PROJECT_TEXT1(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT2(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT3(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT4(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT5(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT6(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT7(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT8(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT9(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT10(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT11(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT12(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT13(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT14(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT15(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT16(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT17(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT18(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT19(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT20(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT21(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT22(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT23(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT24(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT25(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT26(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT27(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT28(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT29(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT30(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT31(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT32(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT33(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT34(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT35(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT36(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT37(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT38(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT39(DataType.STRING),
   ENTERPRISE_PROJECT_TEXT40(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE1(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE2(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE3(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE4(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE5(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE6(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE7(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE8(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE9(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE10(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE11(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE12(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE13(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE14(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE15(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE16(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE17(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE18(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE19(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE20(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE21(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE22(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE23(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE24(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE25(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE26(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE27(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE28(DataType.STRING),
   RESOURCE_ENTERPRISE_OUTLINE_CODE29(DataType.STRING),
   RESOURCE_ENTERPRISE_RBS(DataType.STRING),
   RESOURCE_ENTERPRISE_MULTI_VALUE_CODE20(DataType.STRING),
   RESOURCE_ENTERPRISE_MULTI_VALUE_CODE21(DataType.STRING),
   RESOURCE_ENTERPRISE_MULTI_VALUE_CODE22(DataType.STRING),
   RESOURCE_ENTERPRISE_MULTI_VALUE_CODE23(DataType.STRING),
   RESOURCE_ENTERPRISE_MULTI_VALUE_CODE24(DataType.STRING),
   RESOURCE_ENTERPRISE_MULTI_VALUE_CODE25(DataType.STRING),
   RESOURCE_ENTERPRISE_MULTI_VALUE_CODE26(DataType.STRING),
   RESOURCE_ENTERPRISE_MULTI_VALUE_CODE27(DataType.STRING),
   RESOURCE_ENTERPRISE_MULTI_VALUE_CODE28(DataType.STRING),
   RESOURCE_ENTERPRISE_MULTI_VALUE_CODE29(DataType.STRING),
   ACTUAL_WORK_PROTECTED(DataType.WORK),
   ACTUAL_OVERTIME_WORK_PROTECTED(DataType.WORK),
   BUDGET_WORK(DataType.WORK),
   BUDGET_COST(DataType.CURRENCY),
   RECALC_OUTLINE_CODES(DataType.BOOLEAN),

   IS_START_VALID(DataType.BOOLEAN),
   IS_FINISH_VALID(DataType.BOOLEAN),
   IS_DURATION_VALID(DataType.BOOLEAN),

   PATH_DRIVEN_SUCCESSOR(DataType.BOOLEAN),
   PATH_DRIVING_PREDECESSOR(DataType.BOOLEAN),
   PATH_PREDECESSOR(DataType.BOOLEAN),
   PATH_SUCCESSOR(DataType.BOOLEAN),

   // KEEP THESE TOGETHER AND IN ORDER
   ENTERPRISE_CUSTOM_FIELD1(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD2(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD3(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD4(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD5(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD6(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD7(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD8(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD9(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD10(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD11(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD12(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD13(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD14(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD15(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD16(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD17(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD18(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD19(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD20(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD21(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD22(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD23(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD24(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD25(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD26(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD27(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD28(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD29(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD30(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD31(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD32(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD33(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD34(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD35(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD36(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD37(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD38(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD39(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD40(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD41(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD42(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD43(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD44(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD45(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD46(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD47(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD48(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD49(DataType.BINARY),
   ENTERPRISE_CUSTOM_FIELD50(DataType.BINARY),
   // KEEP THESE TOGETHER AND IN ORDER

   FINISH(DataType.DATE); // Must always be last value

   /**
    * Constructor.
    *
    * @param dataType field data type
    * @param unitsType field units type
    */
   private TaskField(DataType dataType, FieldType unitsType)
   {
      m_dataType = dataType;
      m_unitsType = unitsType;
   }

   /**
    * Constructor.
    *
    * @param dataType field data type
    */
   private TaskField(DataType dataType)
   {
      this(dataType, null);
   }

   /**
    * {@inheritDoc}
    */
   @Override public FieldTypeClass getFieldTypeClass()
   {
      return FieldTypeClass.TASK;
   }

   /**
    * {@inheritDoc}
    */
   @Override public String getName()
   {
      return (getName(Locale.ENGLISH));
   }

   /**
    * {@inheritDoc}
    */
   @Override public String getName(Locale locale)
   {
      String[] titles = LocaleData.getStringArray(locale, LocaleData.TASK_COLUMNS);
      String result = null;

      if (m_value >= 0 && m_value < titles.length)
      {
         result = titles[m_value];
      }

      return (result);
   }

   /**
    * {@inheritDoc}
    */
   @Override public int getValue()
   {
      return (m_value);
   }

   /**
    * {@inheritDoc}
    */
   @Override public DataType getDataType()
   {
      return (m_dataType);
   }

   /**
    * {@inheritDoc}
    */
   @Override public FieldType getUnitsType()
   {
      return m_unitsType;
   }

   /**
    * Retrieves the string representation of this instance.
    *
    * @return string representation
    */
   @Override public String toString()
   {
      return (getName());
   }

   /**
    * This method takes the integer enumeration of a task field
    * and returns an appropriate class instance.
    *
    * @param type integer task field enumeration
    * @return TaskField instance
    */
   public static TaskField getInstance(int type)
   {
      TaskField result = null;

      if (type >= 0 && type < MAX_VALUE)
      {
         result = TYPE_VALUES[type];
      }

      return (result);
   }

   public static final int MAX_VALUE = EnumSet.allOf(TaskField.class).size();
   private static final TaskField[] TYPE_VALUES = new TaskField[MAX_VALUE];
   static
   {
      int value = 0;
      for (TaskField e : EnumSet.allOf(TaskField.class))
      {
         e.m_value = value++;
         TYPE_VALUES[e.getValue()] = e;
      }
   }

   private int m_value;
   private DataType m_dataType;
   private FieldType m_unitsType;
}
